// 给定两个字符串 s 和 t，判断它们是否是同构的。

// 如果 s 中的字符可以按某种映射关系替换得到 t ，那么这两个字符串是同构的。

// 每个出现的字符都应当映射到另一个字符，同时不改变字符的顺序。不同字符不能映射到同一个字符上，相同字符只能映射到同一个字符上，字符可以映射到自己本身。

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/isomorphic-strings
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

#include<bits/stdc++.h>
#include<stack>
#include<string>
#include<vector>
#include<map>
using namespace std;

class Solution {
public:
    bool isIsomorphic(string s, string t) {
    	map<char,char> m;
    	int pos =0;
    	if(s.size()!=t.size()){
    		return false;
    	}
    	else{
    		while(pos<s.size()){
    			if(m.count(s[pos]) || m.count(t[pos])){
	    			int count = 1;
    			}
	    		if(count == 1){
	    			if(m[s[pos]] != t[pos]){
	    				return false;
	    			}
	    			if(m[t[pos]] != s[pos]){
	    				return false;
	    			}
	    		}
	    		m.insert(pair<char,char>(s[pos],t[pos]));
	    		if(s[pos] != t[pos]){
	    			m.insert(pair<char,char>(t[pos],s[pos]));
	    		}
	    		pos++;
	    	}
    	}
    	return true;
    }
};